A method for pre-programming (pre-personalizing) an integrated circuit (IC) Card may comprise the steps of transmitting a memory image of a gold version sample IC card to the IC card and storing the memory image in a memory of the IC card to be pre-programmed. The gold version sample IC card is an IC card including a memory where libraries and pre-programmed data are stored, together with a plurality of programs which are already installed and linked with the libraries.
The method for pre-programming may provide for copying the memory image of the gold version sample IC card, including the executable programs, inside thousands of memories of corresponding IC cards to be pre-programmed, thus avoiding a repetition of the steps of installing and linking the plurality of programs for each IC cards to be pre-programmed. In order to further reduce the time involved in the pre-personalization of IC cards, it may be important to reduce the time used to execute the steps of transmitting and storing.
With reference to FIG. 1a, a schematic diagram represents the time involved for transmitting a memory block 111 of predetermined size Y, for example, an application protocol data unit (APDU) having a size Y of 260 bytes, and the time for storing such memory block in a memory or Electrically Erasable Programmable Read-Only Memory (EEPROM) of the IC card to be pre-programmed. The transmission time of one byte over a channel between the gold version sample IC card and the IC card to be pre-programmed may be 0.93 μs, and a time for writing a block 112 of 64 bytes in the memory or EEPROM of the IC card may be 2 ms. In this case, a time used to transmit the memory block of 260 bytes is 260*0.93 μs=24.2 ms, and a time spent to write such memory block is 4*2 ms=8 ms. Moreover, an acknowledgement message SW may be returned to the gold version sample IC card in 0.2 ms. Under the circumstances given above, the memory block of 260 bytes may be transmitted and stored in 32.4 ms and a memory image of 16 Kb of the gold version sample IC card may be transmitted in 64.25 memory blocks, i.e. in 64.25*32.4 ms, or 2082 ms.
The table represented in FIG. 1b reports the number of memory blocks, also indicated as “Num. of APDU”, used to transmit a memory image with predetermined size, and the corresponding loading time. For example, a memory image of 256 Kb may use 1028 memory blocks of 260 bytes and 33308 ms.